System and Method for Dynamic Modification of Web Content

ABSTRACT

A system and method for dynamic modification and generation of data is described. One embodiment includes an annotation server that is connected to a user and a content provider. The annotation server is configured to modify a copy of an enterprise&#39;s stored Web content without necessarily modifying the actual stored Web content. The annotation server then provides the modified content to the user for viewing or other use.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. Non-Provisional patentapplication Ser. No. 10/272,373, filed Oct. 16, 2002, entitled “Systemand Method for Dynamic Modification of Web Content.” The presentapplication is related to commonly owned and assigned applicationnumbers: Ser. No. 08/651,422, entitled AGENT BASED INSTRUCTION SYSTEMAND METHOD, filed May 22, 1996; Ser. No. 09/042,528, entitled AGENTBASED INSTRUCTION SYSTEM AND METHOD, filed Mar. 15, 1998; Ser. No.09/424,353 entitled AGENT BASED INSTRUCTION SYSTEM AND METHOD, filedNov. 22, 1999; Ser. No. 09/518,916, entitled SYSTEM AND METHOD FOROPTIMIZING A PRODUCT CONFIGURATION, filed Mar. 3, 2000; Ser. No.09/669,251, entitled E-COMMERCE SALES SUPPORT SYSTEM USING AVENDOR-SPECIFIC PRODUCT DECISION QUESTIONNAIRE, filed Sep. 25, 2000;Ser. No. 09/945,032, entitled SYSTEM AND METHOD FOR ENABLINGCOMMUNICATION BETWEEN BROWSER FRAMES, filed Aug. 31, 2001; Ser. No.09/944,676, entitled SYSTEM AND METHOD FOR AUTOMATED END-USER SUPPORT,filed Aug. 31, 2001; and Ser. No. 09/944,836, entitled SYSTEM AND METHODFOR AUTOMATED END-USER SUPPORT, filed Aug. 31, 2001; all of which areincorporated herein by reference.

TECHNICAL FIELD

The present invention relates to dynamic modification and generation ofdata. In particular, but not by way of limitation, the present inventionrelates to systems and methods for dynamically modifying and generatingmarkup-language code and other web-presentation content.

BACKGROUND

As the role of the Internet grows in business, enterprises are investingsignificant resources in developing intuitive, informative andeasy-to-use Web-sites. In fact, sophisticated Web-sites are critical tothe business model of many enterprises—whether those enterprises aretraditional brick-and-mortar retailers, e-commerce retailers, vendors,or suppliers. These sophisticated Web-sites are difficult to build andequally as difficult to maintain. Because of these difficulties,enterprises are understandably protective of their Web-site content andare reluctant to integrate new functionality or implement desiredchanges.

Sophisticated Web-sites need the ability to efficiently modify theircontent, monitor a user's browsing activities, and/or control the user'snavigation through the Web-site. These functions, for the most part, canbe integrated directly into an enterprise's Web-site code. (Theenterprise's Web-site code is referred to as “stored Web content,” andcan include content, presentation instructions, embedded code,operational code, and/or any combination of the above.) When ane-commerce retailer, for example, wants to add an “On Sale” icon next toa particular product, the retailer usually adds code for the icondirectly into its stored Web content. Of course, when the retailer wantsto remove the icon, the corresponding code should be removed from theretailer's stored Web content. Similarly, when an enterprise wants tomonitor and control the navigation of a user within its Web-site, codesuch as JavaScript is generally directly integrated into the stored Webcontent.

Modifying stored Web content, whether it be to add text and images or toadd functionality such as monitoring and navigation control, isburdensome. Additionally, staff and financial limitations restrict anenterprise's ability to modify its stored Web content. In particular,in-house technology staffs are often not equipped or do not have time toadd sophisticated functionality to an enterprise's Web-site. Thus, ifthese sophisticated functionalities are not readily available fromthird-party vendors, they are generally not implemented. Unfortunately,enterprises are understandably reluctant to allow third-party vendors tointegrate functionality into their stored Web content because of therisk of increased downtime for their Web-site.

Because of the staff and financial limitations and the desire to protectthe integrity of their stored Web content, enterprises generally preferto implement certain functionality with only a minimal amount of changesto their stored Web content. In other words, enterprises would prefer toseparate certain functionalities from their stored Web content. Presenttechnology and Web-site security requirements, however, forceenterprises to integrate much functionality directly into their storedWeb content. Accordingly, enterprises often forego integrating neededfunctionality into their Web-sites.

SUMMARY

Exemplary embodiments of the present invention that are shown in thedrawings are summarized below. These and other embodiments are morefully described in the Detailed Description section. It is to beunderstood, however, that there is no intention to limit the inventionto the forms described in this Summary of the Invention or in theDetailed Description. One skilled in the art can recognize that thereare numerous modifications, equivalents and alternative constructionsthat fall within the spirit and scope of the invention as expressed inthe claims.

The present invention, in one embodiment, includes a system and methodfor separating content, control, editing and/or monitoring functions ina Web environment. Other embodiments are directed at non-Webenvironments such as graphical user interfaces (GUIs), image renderingsystems, text rendering systems, non-Web HTML rendering systems, andnon-Web XML rendering systems.

In one embodiment, the described invention includes an annotation serverthat is connected to a user (operating a browser such as Microsoft'sInternet Explorer) and a content provider, which is often anenterprise's Web server and associated content. The annotation server isconfigured to modify a copy of an enterprise's stored Web contentwithout necessarily modifying the actual stored Web content. Forclarity, the copy of the stored Web content that is provided to theannotation server is referred to as “original content.” The annotationserver, thus, receives and modifies “original content.” Once theoriginal content has been modified, it is referred to as “modifiedcontent.” The annotation server generally provides the modified contentto the user—although the modified content can be routed back to the Webserver and then to the user.

The annotation server can intercept or monitor communications betweenthe content provider and the user, thereby enabling one embodiment ofthe annotation server to perform content modification, event monitoring,session state management, and navigation control. Notably, theannotation server can implement one or all of these functions on the flywith little or no modification to the stored Web content.

Referring first to the annotation server's content modificationfunctionality, it allows original content served up from the contentprovider to be modified and edited without otherwise changing the storedWeb content. For example, the annotation server can intercept theoriginal content bound for the user, identify any embedded links in theoriginal content, and replace those links with new or modified linkssuch that the original links can be redirected to point to alternativelocations. In this embodiment, the links are replaced or modifiedwithout altering the stored Web content.

In another embodiment of the annotation server, it can insert text andimages into the original content and/or edit existing text and images inthe original content. For example, the annotation server can insert a“SALE” icon into the original content next to a particular product. Themodified content, including the inserted “SALE” icon, could then betransmitted from the annotation server to the user such that the iconwould be displayed next to the relevant product. As previouslydescribed, inserting an icon into a Web page generally requires thecorresponding stored Web content to be modified. That is, the code forthe icon would be inserted into the stored Web content. Using theannotation server, however, the modification is performed dynamically ona copy of that stored data, i.e., the original content, and the storedWeb content is not necessarily modified.

The annotation server can also include an event monitoring functionalitythat can be implemented without significant modification of the storedWeb content. In one embodiment, the annotation server can monitor auser's navigation of a Web-site. For example, when a user selects anembedded link that points to the content provider, the annotation servercan intercept the selection of the link, modify the link if necessary,and then pass the link or some representation thereof to the contentprovider. By intercepting the link, the annotation server can remainaware of the current content being viewed by the user. This locationawareness is useful for online help and customer support functions thatneed to know what the user is viewing.

In another event-monitoring embodiment, the annotation server couldmonitor and validate data entered into a Web-based form with little orno interaction with the content provider. Essentially, thisimplementation of the annotation server isolates parts of theform-validation function from the content provider, thereby allowing thecontent provider to build a less complex Web-site. Consider the case ofmaking an airline reservation online. The annotation server could detectthe user's entry into the destination field, and before the entry wassubmitted to the airline's Web server, the annotation server couldverify that the destination entered by the user is proper. If thedestination is not proper, the annotation server could dynamicallymodify the displayed Web page to indicate the error. For example, theannotation server could insert a text bubble informing the user of theerror and how to remedy it. Because the annotation server monitors theuser's entries and validates them on the fly, interaction with theairline's Web server is not necessarily required.

In another embodiment, the annotation server detects a “form submit”executed by the user. Generally, when a user chooses to submit a form,the user's browser submits the form directly to the content provider. Inthis embodiment, however, the browser submits the form to the annotationserver instead of the content provider. The annotation server thenverifies the entries in the form against data previously provided by thecontent provider. If the entries in the form are correct, the form issubmitted to the content provider. If the entries in the form are notcorrect, the annotation server identifies the incorrect entries,generates an appropriate error message, and dynamically inserts theerror message into the page that the user is viewing. The incorrectentries are not necessarily submitted to the content provider.

The annotation server can also include navigation control functions thatcan be independent of or integrated with the other annotation serverfunctionalities. In one embodiment, the annotation server has theability to automatically navigate a content provider's Web-site. Forexample, the annotation server could automatically identify and select alink to an alternate page within the Web-site. In other embodiments, theannotation server could embed anchors into a Web page and subsequentlyscroll the page to a particular anchor. For example, the annotationserver could scroll a page to the relevant material that answers auser's questions rather than force the user to locate and scroll thepage manually.

As previously stated, the above-described embodiments andimplementations are for illustration purposes only. The principles ofthe present invention can be used in non-Web-based environments. Theseand numerous other embodiments, implementations, and details of theinvention are easily recognized by those of skill in the art from thefollowing descriptions and claims.

BRIEF DESCRIPTION OF THE DRAWINGS

Various objects and advantages and a more complete understanding of thepresent invention are apparent and more readily appreciated by referenceto the following Detailed Description and to the appended claims whentaken in conjunction with the accompanying Drawings wherein:

FIG. 1 is a block diagram of a system constructed in accordance with theprinciples of the present invention;

FIG. 2 is a block diagram of an alternate system constructed inaccordance with the principles of the present invention;

FIG. 3 is an illustration of a Web page with three frames;

FIG. 4 is a flowchart of one method for replacing content in amulti-frame Web page;

FIG. 5 is a flowchart of one method for controlling pop-up displays in aWeb environment;

FIG. 6 is a flowchart of one method for inserting links into a Web page;

FIG. 7 is a flow chart of one method for automatically relocating a Webpage; and

FIG. 8 is a flowchart of one method for validating an entry in an onlineform.

DETAILED DESCRIPTION

Referring now to the drawings, where like or similar elements aredesignated with identical reference numerals throughout the severalviews, and referring in particular to FIG. 1, it illustrates a blockdiagram of a system 100 constructed in accordance with the principles ofthe present invention. This embodiment includes an annotation server105, a content provider 110—consisting of stored Web content 115 and aWeb server 120—and a Web browser 125 (also referred to as the “user”).Each of these components can be attached to the same network, such asthe Internet, or attached to different networks such as LANs, WANs, etc.Additionally, this embodiment includes separate paths from the contentprovider 110 to the user 125—a path that goes through the annotationserver 105 and a path that directly connects the content provider 110with the user 125. The hardware and software components of servers,networks and storage devices are well known in the arts and are notdescribed further. Similarly, the hardware and software components ofthe annotation server 105 as described are recognizable by those ofskill in the art. For example, the annotation server 105 could includebasic server hardware and software, intermediate language engines, aLinux or Microsoft operating system, etc.

The annotation server 105 is arranged so that it can conditionallyintercept communications otherwise directed from the content provider110 to the user 125 and dynamically alter, monitor and control thecontent being served to the user. “Intercepting” includes, but is notlimited to, directing the content provider 110 to route content boundfor the user 125 to the annotation server 105 instead of the user 125.For example, “intercepting” could include the annotation server 105directing the user 125 to return data for the annotation server's IPaddress instead of the Web server's IP address.

The annotation server 105 can also conditionally interceptcommunications from the user 125 to the content provider 110. In oneembodiment, the annotation server 105 modifies the embedded links in theoriginal content received from the content provider 110 such that theembedded links point to the annotation server 105 instead of the contentprovider 110. For example, the original Web page could be located at“www.buy.com” and an embedded link could refer to www.buy.com/computers.The annotation server 105 could modify this link so that it points to“www.annotation_server.com/buy/computers.” When the user 125 selectswhat appears to be the “www.buy.com/computers” link, the user 125 isactually routed to “www.annotation_server.com/buy/computers.” Thus, theannotation server 105 has “intercepted” the communication between theuser 125 and the content provider 110. This process is described in moredetail herein.

Referring now to FIG. 2, it is a block diagram of an alternate system130 constructed in accordance with the principles of the presentinvention. In this embodiment, the annotation server 105 is integratedwith the content provider 110. Instead of operating as a separatesystem, the annotation server 105, in this embodiment, is integratedwith the content provider 110. As with the embodiment shown in FIG. 1,the annotation server 105 can modify, monitor and control the contentbeing served to the user 125 with minimal disturbance to the contentprovider's stored Web content 115. Otherwise, the operation of thisembodiment is similar to the operation of the system 100 shown in FIG.1.

Original Content Editing and Modification

FIGS. 4-6 illustrate exemplary embodiments for modifying originalcontent, such as XML, HTML, Flash, etc., served up by a content provider110 without substantially changing the stored Web content 115. Theexemplary methods illustrated in these figures enable content providers115 to outsource certain editing and modification functions or tointegrate annotation server 105 technology into their own system to maketemporary or conditional editing and modification less burdensome. Themethods can be applied to Web applications, Web content-delivery sites,and other content delivery systems.

Referring now to FIG. 4, it illustrates a flowchart of one method forreplacing content in a multi-frame or multi-table Web page. This methodcould be used for replacing content in any partitioned or subdividedmaterial. In this embodiment, the annotation server 105 can identify oneof the frames or tables within a Web page and dynamically replace thecontent therein with new content. FIG. 3, for example, illustrates a Webpage 135 with three frames: Frame A, Frame B, and Frame C. Theannotation server 105 can identify Frame A, and dynamically replace thecontent therein with new content such as a virtual sales agent describedin patent application Ser. No. 09/944,836, entitled System and Methodfor Automated End-User Support, filed Aug. 31, 2001. Similarly, theannotation server 105 could identify tables within a page that does notinclude frames and replace the content within that table. Additionally,the annotation server 105 could identify a table within a frame andreplace content within that table.

To dynamically replace the content in a frame, the annotation server 105initially identifies the frames in a Web page being viewed by the user.Step 140. The annotation server 105 then selects one frame forreplacement. Step 145. Preferably, the selected frame is a secondaryframe, e.g., a banner or index frame, and not the main frame thatcontains the primary information that the user is viewing. Once theframe has been selected, the annotation server 105 retrieves thereplacement content, determines the size of the selected frame, andsizes the replacement content to fit in the selected frame. Step 150.The replacement content is then served to the user and displayed in theselected frame. Steps 160 and 165. The annotation server 105 thenreplaces the content of the selected frame with the replacement content.Step 155. The annotation server 105 does not necessarily alter the otherframes. Notably, this method can also be adapted to modify tables.

From the user's perspective, all of the viewed content originates fromthe content provider 110. In reality, the replacement content originatesfrom the annotation server 105 and the content in the other framesoriginates from the content provider 110. The annotation server 105, inthis embodiment, can dynamically edit the material in the selected frameor table without otherwise involving the stored Web content 115. Thus,the annotation server 105 allows a content provider 110 to changesignificantly the user's browsing experience without requiring thecontent provider 110 to significantly modifying its stored Web content.

The annotation server's replacement of content can be conditional basedupon a user's actions. For example, the replacement of content can beresponsive to a user selecting a “HELP” button. Thus, the annotationserver 105 can be engaged and disengaged based upon the user's actions.When the annotation server is disengaged, the Web server 120 cancontinue to operate normally because this embodiment of the annotationserver 105 is not integrated into the Web server 120. In other words,the Web server 120 can be independent of the annotation server 105.

Referring now to FIG. 5, it is a flowchart of another method formodifying original content served up by a content provider 110 withoutsubstantially changing the content provider's stored Web content 115.This particular embodiment involves management of interstitials andpop-up windows. In particular, this embodiment suppresses pop-up windowsand places the pop-up window content in a frame of the already displayedWeb page. This suppression can prevent certain material from beingcovered by a pop-up window, i.e., moved to the background. This method,for example, is beneficial in online help situations where Frame A(shown in FIG. 3) includes a virtual agent that should not be covered bya pop-up window. Pop-up windows and interstitials are well known anddocumented in the art, and their implementation is not described herein.

In this embodiment, the user selects a Web page from the contentprovider 110. Step 170. This Web page is then provided from the contentprovider to the annotation server 105. Step 175. Alternately, the Webpage may be cached at an alternate location, including the annotationserver 105. Once the annotation server 105 receives the page, theannotation server 105 can determine if the page includes pop-up windowinstructions. Step 180. If the page includes such instructions, theannotation server 105 alters the instructions in the received page suchthat the pop-up instructions are suppressed, e.g., removed or edited.Step 185. The altered page is then provided to the user. Step 190. Whenthe user selects a link within the page that was previously associatedwith a pop-up window, the content is rendered in the existing window.Step 195.

Referring now to FIG. 6, it is a flowchart of yet another method formodifying original content served up by a content provider 110 withoutsubstantially changing the content provider's stored Web content 115.This particular embodiment involves link, image, and icon insertion(collectively referred to as “objects”). As previously described, theannotation server 105 can replace embedded links in Web content with newor modified links. In one embodiment, the annotation server 105 candirect all or some portion of the embedded links within a Web page toits IP address instead of the content provider's IP address. Similarly,the annotation server 105 can insert text, images, or icons, which areassociated with executable code, into a content provider's originalcontent. For example, the annotation server 105 could insert a “SALE”icon next to all SONY™ TVs, and when the user selects the icon, embeddedcode can be executed that gives details of the sale. By using theannotation server 105, the content provider 110 does not need to modifyits stored Web content 115 to reflect the “SALE” icon and the relatedcode. The annotation server 105 stores the icon and code information anddynamically inserts it into the original content. Thus, the contentprovider 110 can make temporary or conditional changes to the appearanceof its Web-site without otherwise changing its stored Web content 115.

Still referring to FIG. 6, the annotation server 105 intercepts originalcontent that is directed to the user 125. Step 205. The annotationserver 105 then determines which objects that it should search for inthe original content Step 210. For example, the annotation server 105could search a list of sale items and corresponding annotations that aredesignated by the retailer. Upon receiving original content from theparticular retailer, the annotation server 105 would search the contentfor any of the sale items. The annotation server 105 could search forwords, phrases, images, tables, links, etc. If a sale item is located,the appropriate object is inserted into the original content and thatmodified content is served to the user 125. Steps 215, 220 and 225. Aswith other embodiments, the user's browsing experience is significantlychanged without requiring the content provider 110 to significantlychange its stored Web content 115.

Navigation Control

FIG. 7 illustrates one method for controlling navigation in a Web-site.As with the above-described modification functionality, the controlfunctionality can be implemented in the annotation server 105, therebyreducing or eliminating the need for stored Web content 115 to bemodified. In this embodiment, the annotation server 105 canautomatically scroll to or highlight material on a Web page. Forexample, assume that a user 125 is viewing a first Web page concerning aretailer's policies. The Web page may contain information regardingreturns, warranties, returned checks, gift certificates, etc. The user125, however, may only want to know the mailing address to which returnsshould be sent. If the user 125 poses this question to a virtual salesagent driven by the annotation server 105—possibly displayed in anaccompanying frame—the annotation server 105 could locate theinformation in the Web page content and automatically scroll the page tothe relevant material.

In one embodiment of the navigation control functionality, theannotation server 105 receives Web page content and identifies targetcontent therein. Steps 230 and 232. The annotation server can theninsert anchor objects, which may be hidden, into the received Web pagecontent in association with the identified target content. Step 234. Themodified Web page content can then be transmitted to the user forviewing. Steps 236 and 238. When the user selects an object within thepage or submits a question, the appropriate anchor object can be locatedand the Web page can be repositioned accordingly. Steps 240 and 242. Inother embodiments, the annotation server 105 can search the originalcontent for relevant strings, such as “return address,” and scroll thepage to that point. Both embodiments can be implemented with a minimalamount of modification to the stored Web content 115.

In yet other embodiments, the annotation server 105 can determine thatthe page being viewed by the user 125 does not contain the requestedinformation and automatically request another page from the contentprovider 110. In essence, the annotation server 105 is navigating thecontent provider's Web-site for the user 125. Although the contentprovider's stored Web content 115 is not necessarily modified, thecontent provider 110 should provide the annotation server 105 with asite map for the relevant portions of the stored Web content 115.

Event Monitoring

Referring now to FIG. 8, it is a flowchart of one method for monitoringa user's actions on a Web page, including form submits, navigationevents, field submits, etc. This particular embodiment involvesmonitoring and validating fields in a Web-based form such as thosecommonly used by e-commerce sites and online travel reservation sites.Initially, the annotation server 105 intercepts the user-bound originalcontent that includes the form being monitored. Step 245. The annotationserver 105 identifies a target field then inserts executable code, suchas JavaScript, into the original content. Steps 250 and 255. Thisexecutable code can validate the entries in the form without submittingthe entries to the annotation server 105 or the content provider 110.The modified content is then served to the user 125 as if it originatedfrom the content provider 110. Step 260.

The executable code that is inserted into the original content canmonitor for the user 125 to enter data into the monitored field.Generally, the executable code can detect when the user 125 enters orexits the field. Step 265. Once the field has been exited, theexecutable code can validate the entry. Step 270. For example, theexecutable code may determine that an expiration date on a credit cardhas expired, that a required field was left blank, or that a particularflight destination is not available. Assuming that an entry is invalid,the embedded executable code can generate an error message and arecommendation, or the executable code can notify the annotation server105, and the annotation server 105 can generate the error message andthe recommendation. Step 275. In either embodiment, however, the errorcan be handled before the data is submitted to the content provider 110.

In other embodiments, the annotation server 105 detects when the user125 submits a form to the content provider 110, and validates the formbefore it is actually submitted. For example, the user 125 could fillout an airline reservation request and submit it to the airline. Theannotation server 105, however, could intercept the request and validatethe information in the request by comparing it against informationpreviously provided by the airline or by comparing it against logicalrules such as a “departure date must be before a return date.” If thedata in the form is correct, then the form is passed to the airline forofficial processing. The annotation server 105 is not necessarilyresponsible for checking information such as flight availability,pricing, etc. Rather, the annotation server 105 generally—but not alwaysvalidates the form of the entries, not the substance.

When the annotation server 105 determines that the submitted datacontains an error, the annotation server 105 can invoke a virtual salesagent, or it can generate an error message that directs the user 125 tothe source of the error. For example, the annotation server 105 couldscroll the viewed Web page to the incorrect entry and insert a textbubble indicating the type of error and the required information. Fromthe user's perspective, the error message and assistance originates fromthe airline. In reality, the airline is unaware that the user 125entered incorrect information because the annotation server 105intercepted the incorrect information before it was submitted to theairline.

In conclusion, the present invention provides, among other things, asystem and method for dynamically modifying and generatingmarkup-language code. Those skilled in the art can readily recognizethat numerous variations and substitutions may be made in the invention,its use and its configuration to achieve substantially the same resultsas achieved by the embodiments described herein. Accordingly, there isno intention to limit the invention to the disclosed exemplary forms.Many variations, modifications and alternative constructions fall withinthe scope and spirit of the disclosed invention as expressed in theclaims.

1. A method for modifying a copy of original Web-page code stored at acontent provider, the method comprising the steps of: (a) responsive toa request from a user for Web content, receiving, at an annotationserver, the copy of the original Web-page code, wherein the copy of theoriginal Webpage code includes a data item; (b) determining amodification that should be applied to the copy of the original Web-pagecode, wherein the determined operational modification is associated withthe data item; (c) modifying the copy of the original Web-page codeaccording to the determined modification, wherein the original Web-pagecode stored at the content provider is not modified responsive tomodifying the copy of the original Web-page code; (d) providing themodified copy of original Web-page code to the user; and wherein thedata item comprises a graphics-based animation object which comprisesFlash content.
 2. A method for modifying a copy of original Web-pagecode stored at a content provider, the method comprising the steps of:(a) responsive to a request from a user for Web content, receiving, atan annotation server, the copy of the original Web-page code, whereinthe copy of the original Webpage code includes a data item; (b)determining a modification that should be applied to the copy of theoriginal Web-page code, wherein the determined operational modificationis associated with the data item; (c) modifying the copy of the originalWeb-page code according to the determined modification, wherein theoriginal Web-page code stored at the content provider is not modifiedresponsive to modifying the copy of the original Web-page code; (d)providing the modified copy of original Web-page code to the user; andwherein modifying the copy of the original Web-page code comprisesinsertion of executable code configured to monitor for the user to enterdata into a field.
 3. A method for modifying original content receivedfrom a content provider, the method comprising the steps of: (a)receiving the original content from the content provider, the originalcontent including a content object; (b) determining a modification thatshould be applied to the original content, wherein the determinedmodification is associated with the content object included in thereceived original content; (c) modifying the received-original contentaccording to the determined modification; (d) providing themodified-original content to a user; wherein the original contentcomprises a field for user data entry and wherein modifying thereceived-original content comprising inserting code configured tovalidate data entered into the field.
 4. The method of claim 3, whereinvalidating data entered into the field comprises validating the dataentered into the field against data previously provided by the contentprovider.
 5. The method of claim 3, wherein the inserted code comprisesJavascript.